SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE Procedure [dbo].[SP_TTPROC_INLO_Q02]  
/*---------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                  --*/  
/*---Cliente              : Ofisis                       --*/  
/*---Sistema              : Interfase                    --*/  
/*---M½dulo               : Empresa                      --*/  
/*---Programa             : Interface Contable log­stica --*/  
/*---Script               : TTPROC_INLO                  --*/  
/*---Nombre SP            : SP_TTPROC_INLO_Q02           --*/  
/*---Desarrollado por     : Gianmarco Lindo Huertas      --*/  
/*---Fecha Creaci½n       : 07/08/2001                   --*/  
/*---Base Datos           : Microsoft Sql Server         --*/  
/*---Versi½n              : 8.0                          --*/  
/*---Invoca a SP          :                              --*/  
/*---------------------------------------------------------*/  
/*---------------------------------------------------------*/  
/*---Modificado 1 por     : Yerald Miyashiro K.          --*/  
/*---Fecha Modificaci½n   : 27/08/2004                   --*/   
/*---Detalle Modificaci½n : Setea Monto Contable         --*/  
/*---------------------------------------------------------*/  
  
/*---------------------------------------------------------*/  
/*---Comentarios                                         --*/  
/*--- Determina los Montos Origen y Contables            --*/  
/*--- que serÿn insertados en el Voucher                 --*/  
/*---------------------------------------------------------*/  
/*---------------------------------------------------------*/  
/*--- Drop Proc SP_TTPROC_INLO_Q02                       --*/  
/*---Grant all on SP_TTPROC_INLO_Q02 to public           --*/   
/*---SP_TTPROC_INLO_Q02 '01' , 1, 1, '03/01/1999',       --*/  
/*--- '03/31/1999', 'N', 1, 0, 0, NULL , NULL            --*/  
/*---------------------------------------------------------*/  
@ISCO_MONE_MOVI   TD_VC_003,        /* Moneda del Movimiento                    */  
@ISCO_MONE_CNTA   TD_VC_003,        /* Moneda de la Cuenta                      */  
@ISCO_MONE_CNTB   TD_VC_003,        /* Moneda de la Contabilidad                */  
@ISCO_MONE_NACI   TD_VC_003,        /* Moneda Nacional                          */  
@IID_MONE         TD_VC_001,        /* Flag que indica si respeta moneda de Cta */  
@INFA_CAMB        TD_NU_015_006,    /* Factor de Conversi½n                     */  
@INFA_CAMB_BASE   TD_NU_015_006,    /* Factor de Conversi½n                     */  
@INIM_MOVI        TD_NU_016_004,    /* Importe Movimiento                       */  
@ONIM_MVTO_ORIG   TD_NU_016_004 OUTPUT, /* Importe Movimiento Origen Cuenta Contable*/  
@ONIM_MVTO_CNTB   TD_NU_016_004 OUTPUT, /* Importe Movimiento Contable              */  
@OSCO_MONE_ASTO   TD_VC_003 OUTPUT  /* Moneda Asiento                           */  

As  
Begin   
  DECLARE  
  @VSCO_MON1       TD_VC_003,  
  @VSCO_MONE_BAS1  TD_VC_003,  
  @VSTI_OPE1       TD_VC_001,  
  @VSCO_MON2       TD_VC_003,  
  @VSCO_MONE_BAS2  TD_VC_003,  
  @VSTI_OPE2       TD_VC_001  
  
  Select @ONIM_MVTO_ORIG = 0.00  
  Select @ONIM_MVTO_CNTB = 0.00  
  
  -- Setea Moneda Asiento --  
  If @IID_MONE = 'S'  
    Select @OSCO_MONE_ASTO = @ISCO_MONE_CNTA  
  Else  
    Select @OSCO_MONE_ASTO = @ISCO_MONE_MOVI  
  
  -- Setea Monto Origen --  
  If @IID_MONE = 'N' Or @ISCO_MONE_MOVI = @ISCO_MONE_CNTA  
   Select @ONIM_MVTO_ORIG = @INIM_MOVI  
  Else  
  Begin  
  
    ----  Recupero monedas  
    Select @VSCO_MON1 = t1.CO_MON1, @VSCO_MONE_BAS1 = t1.CO_MONE_BAS1,  
           @VSTI_OPE1 = t1.TI_OPE1, @VSCO_MON2 = t1.CO_MON2,  
           @VSCO_MONE_BAS2 = t1.CO_MONE_BAS2,@VSTI_OPE2 = TI_OPE2  
    From   OFISEGU.DBO.TMCONV_MONE t1  
    Where  t1.CO_MONE_ORIG   = @ISCO_MONE_MOVI  
    And    t1.CO_MONE_DEST   = @ISCO_MONE_CNTA   
  
    If IsNull(@INFA_CAMB,0) > 0       Begin  
      If @VSTI_OPE1 = 'M'  
        Select @ONIM_MVTO_ORIG  =  @INIM_MOVI * @INFA_CAMB   
      Else  
        Select @ONIM_MVTO_ORIG  =  @INIM_MOVI / @INFA_CAMB  
    End   
    Else  
      Select @ONIM_MVTO_ORIG = 0  
  
    ----- If existe segunda moneda para convertir  
    If Len(Ltrim(IsNull(@VSCO_MON2,''))) > 0 And  IsNull(@ONIM_MVTO_ORIG,0)> 0  
    Begin  
      If IsNull(@INFA_CAMB_BASE,0) > 0  
      Begin  
        If @VSTI_OPE2 = 'M'  
          Select @ONIM_MVTO_ORIG =  @ONIM_MVTO_ORIG * @INFA_CAMB_BASE  
        Else   
          Select @ONIM_MVTO_ORIG =  @ONIM_MVTO_ORIG / @INFA_CAMB_BASE  
      End   
      Else  
        Select @ONIM_MVTO_ORIG = 0  
    End  
        Select @ONIM_MVTO_ORIG  =  ROUND(@ONIM_MVTO_ORIG,2)  
  End  
  
  -- Setea Monto Contable --  
  If @ISCO_MONE_MOVI = @ISCO_MONE_CNTA  
  Begin  
    If @ISCO_MONE_MOVI = @ISCO_MONE_CNTB  
       Select @ONIM_MVTO_CNTB = @INIM_MOVI  
    Else  
    Begin  
  
    ----  Recupero monedas  
    Select @VSCO_MON1 = t1.CO_MON1, @VSCO_MONE_BAS1 = t1.CO_MONE_BAS1,  
           @VSTI_OPE1 = t1.TI_OPE1, @VSCO_MON2 = t1.CO_MON2,  
           @VSCO_MONE_BAS2 = t1.CO_MONE_BAS2,@VSTI_OPE2 = TI_OPE2  
    From   OFISEGU.DBO.TMCONV_MONE t1  
    Where  t1.CO_MONE_ORIG   = @ISCO_MONE_MOVI  
    And    t1.CO_MONE_DEST   = @ISCO_MONE_CNTB   
  
    If IsNull(@INFA_CAMB,0) > 0  
    Begin  
      If @VSTI_OPE1 = 'M'  
        Select @ONIM_MVTO_CNTB  =  @INIM_MOVI * @INFA_CAMB   
      Else  
        Select @ONIM_MVTO_CNTB  =  @INIM_MOVI / @INFA_CAMB  
    End   
    Else  
      Select @ONIM_MVTO_CNTB = 0  
  
    ----- If existe segunda moneda para convertir  
    If Len(Ltrim(IsNull(@VSCO_MON2,''))) > 0 And  IsNull(@ONIM_MVTO_CNTB,0)> 0  
    Begin  
      If IsNull(@INFA_CAMB_BASE,0) > 0  
      Begin  
        If @VSTI_OPE2 = 'M'  
          Select @ONIM_MVTO_CNTB =  @ONIM_MVTO_CNTB * @INFA_CAMB_BASE  
        Else   
   Select @ONIM_MVTO_CNTB =  @ONIM_MVTO_CNTB / @INFA_CAMB_BASE  
      End   
      Else  
   Select @ONIM_MVTO_CNTB = 0  
    End  
        Select @ONIM_MVTO_CNTB  = ROUND(@ONIM_MVTO_CNTB,2)  
    End  
  End  
  Else  
  Begin  
    -- MODIFICADO POR YMK
    
    If @IID_MONE = 'S'  AND @ISCO_MONE_CNTA = @ISCO_MONE_CNTB  
      Select @ONIM_MVTO_CNTB = @ONIM_MVTO_ORIG  
    Else If @IID_MONE = 'N'  AND @ISCO_MONE_MOVI = @ISCO_MONE_CNTB
      Select @ONIM_MVTO_CNTB = @ONIM_MVTO_ORIG  
    Else  
    Begin  
  
    ----  Recupero monedas  
    Select @VSCO_MON1 = t1.CO_MON1, @VSCO_MONE_BAS1 = t1.CO_MONE_BAS1,  
           @VSTI_OPE1 = t1.TI_OPE1, @VSCO_MON2 = t1.CO_MON2,  
           @VSCO_MONE_BAS2 = t1.CO_MONE_BAS2,@VSTI_OPE2 = TI_OPE2  
    From   OFISEGU.DBO.TMCONV_MONE t1  
    Where  t1.CO_MONE_ORIG   = @ISCO_MONE_MOVI  
    And    t1.CO_MONE_DEST   = @ISCO_MONE_CNTB   
  
    If IsNull(@INFA_CAMB,0) > 0  
    Begin  
      If @VSTI_OPE1 = 'M'  
        Select @ONIM_MVTO_CNTB  =  @ONIM_MVTO_ORIG * @INFA_CAMB   
      Else  
        Select @ONIM_MVTO_CNTB  =  @ONIM_MVTO_ORIG / @INFA_CAMB  
    End   
    Else  
      Select @ONIM_MVTO_CNTB = 0  
  
    ----- If existe segunda moneda para convertir  
    If Len(Ltrim(IsNull(@VSCO_MON2,''))) > 0 And  IsNull(@ONIM_MVTO_CNTB,0)> 0  
    Begin  
      If IsNull(@INFA_CAMB_BASE,0) > 0  
      Begin  
        If @VSTI_OPE2 = 'M'  
          Select @ONIM_MVTO_CNTB =  @ONIM_MVTO_CNTB * @INFA_CAMB_BASE  
        Else   
          Select @ONIM_MVTO_CNTB =  @ONIM_MVTO_CNTB / @INFA_CAMB_BASE  
      End   
      Else  
        Select @ONIM_MVTO_CNTB = 0  
    End  
        Select @ONIM_MVTO_CNTB  = ROUND(@ONIM_MVTO_CNTB,2)  
    End  
  End  
End  
/*------------------------------ Fin -------------------------------*/
-----------------------------------------------------------
-- Type: Stored Procedure
-- Name: SP_TTPROC_INTE_I01
-----------------------------------------------------------


GO
